﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Apewer.Network
{

    /// <summary>HTTP 头。</summary>
    [Serializable]
    public sealed class HttpHeader
    {

        string _name = null;
        string _value = null;

        /// <summary>名称。</summary>
        public string Name { get => _name; set => _name = value?.Trim(); }

        /// <summary>值。</summary>
        public string Value { get => _value; set => _value = value?.Trim(); }

        /// <summary>创建 HTTP 头的实例。</summary>
        public HttpHeader() { }

        /// <summary>创建 HTTP 头的实例。</summary>
        /// <exception cref="ArgumentException" />
        public HttpHeader(KeyValuePair<string, string> keyValuePair)
        {
            if (keyValuePair.Key.IsEmpty()) throw new ArgumentNullException("Key 无效。");

            Name = keyValuePair.Key;
            Value = keyValuePair.Value;
        }

        /// <summary>创建 HTTP 头的实例。</summary>
        /// <exception cref="ArgumentNullException" />
        public HttpHeader(string name, string value)
        {
            if (name.IsEmpty()) throw new ArgumentNullException(nameof(name));

            Name = name;
            Value = value;
        }

        /// <summary></summary>
        public override string ToString() => $"{Name}: {Value}";

    }

}
